package com.qf.osmproduct.product.service;

import cn.hutool.core.lang.tree.Tree;
import com.qf.common.core.entity.product.Product;
import com.qf.osmproduct.product.vo.GoodsVO;
import com.qf.osmproduct.product.param.HomeGoodsParam;
import com.qf.osmproduct.product.param.ProductParam;
import com.qf.osmproduct.product.vo.HomeRECVO;

import java.util.List;

/**
 * @author GaoQiangLiang
 */
public interface ProductService {
    /**
     * 查询所有商品，并以树形结构返回
     *
     * @return 树形结构的商品列表
     */
    List<Tree<String>> getList(HomeGoodsParam homeGoodsParam);

    /**
     * 获取首页推荐商品
     *
     * @return 首页推荐商品列表
     */
    HomeRECVO getHomeREC();

    //  获取首页展示商品
    List<Product> getHomeShowGoods(HomeGoodsParam homeGoodsParam);

    /**
     * 获取首页展示商品
     *
     * @return 首页展示商品列表
     */
    List<String> getHotProductName();

    /**
     * 搜索商品
     *
     * @param productParam 搜索参数
     * @return 搜索结果
     */
    List<Product> searchProduct(ProductParam productParam);

    /**
     * 获取商品详情
     *
     * @param productId 商品id
     * @return 商品详情
     */
    GoodsVO getProductById(Integer productId);


    /**
     * 获取商品信息
     *
     * @param productIds 商品id列表
     * @return 商品信息列表
     */
    List<Product> getProductInfo(List<Integer> productIds);
}
